#ifndef METEOROLOGYWINDOW_H
#define METEOROLOGYWINDOW_H

#include "QMainWindow"
#include "QDockWidget"
#include "QMdiArea"
#include "QStackedWidget"
#include <string>
#include "QRender.h"
#include "QRenderPoint.h"
#include "ui_QTransferFunctionEditor.h"


class VisWindow : public QMainWindow
{
    Q_OBJECT
public:
    VisWindow(std::string filename = "", QWidget* parent = NULL);
public:
    ~VisWindow(void);
public:
    QDockWidget * bottomWidget;
private:
    std::string fileName;
    QWidget * pEditorWidget;
    Ui::QTransferFunctionEditor tfEditorUI;
signals:
    void signalControlPointsChanged(QRenderHoverPoints * controlPoints, int width);
    void volumeUpdated();

    

private:
    QMenuBar * menubar_;
    QMenu * menu_File_;
    QAction * action_DVR_Open_;
    QAction * action_ISOsurface_Open_;
    QString rdfFileName;
    QRender * widgetRender;
    QMdiArea * centralArea;
    QTimer * timer;

    QDockWidget * isoDockWidget_;
    QTabWidget * tabWidget;

    QDockWidget * dockWidget;

public:
    void initActions();
    void initMenus();
    void initMessageMap();

public slots:
    void onOpenDVRFile();
    void onRdfTimeOut_DVR();
    void on_animate();
    void on_stop();
    void on_QRender_close();


signals:
    void updateFunction();
    
};
#endif